fix: always return the same value when resolving requests multiple times #522
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
I found a bug in our system when resolving a request multiple times. The first time it was resolved it was fine (and so fetchr tests), but at the second time it would resolve with an undefined value. The code was looking something like this:
Fixing it was simple, we just had to keep a reference to the fetch promise in
httpRequest
and always return_request.then
inFetchrHttpRequest.then
method.However, that broke the abort support since we were not returning an instance of
FetchrHttpRequest
anymore to the caller. To solve that, it was also necessary to store a reference toFetchrHttpRequest
in theRequest
class infetchr.client.js
.I added a bunch of more tests to cover this and other cases as well.